!function(root, factory){ if(typeof define==='function'&&define.amd){ define(['jquery'], factory); }else if(typeof exports==='object'){ factory(require('jquery')); }else{ factory(root.jQuery); }}(this, function($){ 'use strict'; $.fn.typeWatch=function(o){ var _supportedInputTypes = ['TEXT', 'TEXTAREA', 'PASSWORD', 'TEL', 'SEARCH', 'URL', 'EMAIL', 'DATETIME', 'DATE', 'MONTH', 'WEEK', 'TIME', 'DATETIME-LOCAL', 'NUMBER', 'RANGE', 'DIV']; var options=$.extend({ wait: 750, callback: function(){ }, highlight: true, captureLength: 2, allowSubmit: false, inputTypes: _supportedInputTypes }, o); function checkElement(timer, override){ var value=timer.type==='DIV' ? jQuery(timer.el).html() : jQuery(timer.el).val(); if((value.length >=options.captureLength&&value!=timer.text) || (override&&(value.length >=options.captureLength||options.allowSubmit)) || (value.length==0&&timer.text)){ timer.text=value; timer.cb.call(timer.el, value); }}; function watchElement(elem){ var elementType=(elem.type||elem.nodeName).toUpperCase(); if(jQuery.inArray(elementType, options.inputTypes) >=0){ var timer={ timer: null, text: (elementType==='DIV') ? jQuery(elem).html():jQuery(elem).val(), cb: options.callback, el: elem, type: elementType, wait: options.wait }; if(options.highlight&&elementType!=='DIV') jQuery(elem).focus(function(){ this.select(); }); var startWatch=function(evt){ var timerWait=timer.wait; var overrideBool=false; var evtElementType=elementType; if(typeof evt.keyCode!='undefined'&&evt.keyCode==13 && evtElementType!=='TEXTAREA'&&elementType!=='DIV'){ timerWait=1; overrideBool=true; } var timerCallbackFx=function(){ checkElement(timer, overrideBool) } clearTimeout(timer.timer); timer.timer=setTimeout(timerCallbackFx, timerWait); }; jQuery(elem).on('keydown paste cut input', startWatch); }}; return this.each(function(){ watchElement(this); }); };}); (function (factory){ if(typeof define==='function'&&define.amd){ define(['jquery'], factory); }else if(typeof module==='object'&&module.exports){ module.exports=function (root, jQuery){ if(jQuery===undefined){ if(typeof window!=='undefined'){ jQuery=require('jquery'); }else{ jQuery=require('jquery')(root); }} factory(jQuery); return jQuery; };}else{ factory(jQuery); }})(function ($){ "use strict"; if('undefined'===typeof $){ if('console' in window){ window.console.info('Too much lightness, Featherlight needs jQuery.'); } return; } if($.fn.jquery.match(/-ajax/)){ if('console' in window){ window.console.info('Featherlight needs regular jQuery, not the slim version.'); } return; } function Featherlight($content, config){ if(this instanceof Featherlight){ this.id=Featherlight.id++; this.setup($content, config); this.chainCallbacks(Featherlight._callbackChain); }else{ var fl=new Featherlight($content, config); fl.open(); return fl; }} var opened=[], pruneOpened=function (remove){ opened=$.grep(opened, function (fl){ return fl!==remove&&fl.$instance.closest('body').length > 0; }); return opened; }; function slice(obj, set){ var r={}; for (var key in obj){ if(key in set){ r[key]=obj[key]; delete obj[key]; }} return r; } var iFrameAttributeSet={ allow: 1, allowfullscreen: 1, frameborder: 1, height: 1, longdesc: 1, marginheight: 1, marginwidth: 1, mozallowfullscreen: 1, name: 1, referrerpolicy: 1, sandbox: 1, scrolling: 1, src: 1, srcdoc: 1, style: 1, webkitallowfullscreen: 1, width: 1 }; function parseAttrs(obj, prefix){ var attrs={}, regex=new RegExp('^' + prefix + '([A-Z])(.*)'); for (var key in obj){ var match=key.match(regex); if(match){ var dasherized=(match[1] + match[2].replace(/([A-Z])/g, '-$1')).toLowerCase(); attrs[dasherized]=obj[key]; }} return attrs; } var eventMap={ keyup: 'onKeyUp', resize: 'onResize' }; var globalEventHandler=function (event){ $.each(Featherlight.opened().reverse(), function (){ if(!event.isDefaultPrevented()){ if(false===this[eventMap[event.type]](event)){ event.preventDefault(); event.stopPropagation(); return false; }} }); }; var toggleGlobalEvents=function (set){ if(set!==Featherlight._globalHandlerInstalled){ Featherlight._globalHandlerInstalled=set; var events=$.map(eventMap, function (_, name){ return name + '.' + Featherlight.prototype.namespace; }).join(' '); $(window)[set ? 'on':'off'](events, globalEventHandler); }}; Featherlight.prototype={ constructor: Featherlight, namespace: 'featherlight', targetAttr: 'data-featherlight', variant: null, resetCss: false, background: null, openTrigger: 'click', closeTrigger: 'click', filter: null, root: 'body', openSpeed: 250, closeSpeed: 250, closeOnClick: 'background', closeOnEsc: true, closeIcon: '✕', loading: '', persist: false, otherClose: null, beforeOpen: $.noop, beforeContent: $.noop, beforeClose: $.noop, afterOpen: $.noop, afterContent: $.noop, afterClose: $.noop, onKeyUp: $.noop, onResize: $.noop, type: null, contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], setup: function (target, config){ if(typeof target==='object'&&target instanceof $===false&&!config){ config=target; target=undefined; } var self=$.extend(this, config, { target: target }), css = !self.resetCss ? self.namespace:self.namespace + '-reset', $background=$(self.background||[ '
', '
', '', '
' + self.loading + '
', '
', '
'].join('')), closeButtonSelector='.' + self.namespace + '-close' + (self.otherClose ? ',' + self.otherClose:''); self.$instance=$background.clone().addClass(self.variant); self.$instance.on(self.closeTrigger + '.' + self.namespace, function (event){ if(event.isDefaultPrevented()){ return; } var $target=$(event.target); if(('background'===self.closeOnClick&&$target.is('.' + self.namespace)) || 'anywhere'===self.closeOnClick || $target.closest(closeButtonSelector).length){ self.close(event); event.preventDefault(); }}); return this; }, getContent: function (){ if(this.persist!==false&&this.$content){ return this.$content; } var self=this, filters=this.constructor.contentFilters, readTargetAttr=function (name){ return self.$currentTarget&&self.$currentTarget.attr(name); }, targetValue=readTargetAttr(self.targetAttr), data=self.target||targetValue||''; var filter=filters[self.type]; if(!filter&&data in filters){ filter=filters[data]; data=self.target&&targetValue; } data=data||readTargetAttr('href')||''; if(!filter){ for (var filterName in filters){ if(self[filterName]){ filter=filters[filterName]; data=self[filterName]; }} } if(!filter){ var target=data; data=null; $.each(self.contentFilters, function (){ filter=filters[this]; if(filter.test){ data=filter.test(target); } if(!data&&filter.regex&&target.match&&target.match(filter.regex)){ data=target; } return !data; }); if(!data){ if('console' in window){ window.console.error('Featherlight: no content filter found ' + (target ? ' for "' + target + '"':' (no target specified)')); } return false; }} return filter.process.call(self, data); }, setContent: function ($content){ this.$instance.removeClass(this.namespace + '-loading'); this.$instance.toggleClass(this.namespace + '-iframe', $content.is('iframe')); this.$instance.find('.' + this.namespace + '-inner') .not($content) .slice(1).remove().end() .replaceWith($.contains(this.$instance[0], $content[0]) ? '':$content); this.$content=$content.addClass(this.namespace + '-inner'); return this; }, open: function (event){ var self=this; self.$instance.hide().appendTo(self.root); if((!event||!event.isDefaultPrevented()) && self.beforeOpen(event)!==false){ if(event){ event.preventDefault(); } var $content=self.getContent(); if($content){ opened.push(self); toggleGlobalEvents(true); self.$instance.fadeIn(self.openSpeed); self.beforeContent(event); return $.when($content) .always(function ($openendContent){ if($openendContent){ self.setContent($openendContent); self.afterContent(event); }}) .then(self.$instance.promise()) .done(function (){ self.afterOpen(event); }); }} self.$instance.detach(); return $.Deferred().reject().promise(); }, close: function (event){ var self=this, deferred=$.Deferred(); if(self.beforeClose(event)===false){ deferred.reject(); }else{ if(0===pruneOpened(self).length){ toggleGlobalEvents(false); } self.$instance.fadeOut(self.closeSpeed, function (){ self.$instance.detach(); self.afterClose(event); deferred.resolve(); }); } return deferred.promise(); }, resize: function (w, h){ if(w&&h){ this.$content.css('width', '').css('height', ''); var ratio=Math.max(w / (this.$content.parent().width() - 1), h / (this.$content.parent().height() - 1)); if(ratio > 1){ ratio=h / Math.floor(h / ratio); this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px'); }} }, /* Utility function to chain callbacks [Warning: guru-level] Used be extensions that want to let users specify callbacks but also need themselves to use the callbacks. The argument 'chain' has callback names as keys and function(super, event) as values. That function is meant to call `super` at some point. */ chainCallbacks: function (chain){ for (var name in chain){ this[name]=$.proxy(chain[name], this, $.proxy(this[name], this)); }} }; $.extend(Featherlight, { id: 0, autoBind: '[data-featherlight]', defaults: Featherlight.prototype, contentFilters: { jquery: { regex: /^[#.]\w/, test: function (elem){ return elem instanceof $&&elem; }, process: function (elem){ return this.persist!==false ? $(elem):$(elem).clone(true); }}, image: { regex: /\.(png|jpg|jpeg|gif|tiff?|bmp|svg)(\?\S*)?$/i, process: function (url){ var self=this, deferred=$.Deferred(), img=new Image(), $img=$(''); img.onload=function (){ $img.naturalWidth=img.width; $img.naturalHeight=img.height; deferred.resolve($img); }; img.onerror=function (){ deferred.reject($img); }; img.src=url; return deferred.promise(); }}, html: { regex: /^\s*<[\w!][^<]*>/, process: function (html){ return $(html); }}, ajax: { regex: /./, process: function (url){ var self=this, deferred=$.Deferred(); var $container=$('
').load(url, function (response, status){ if(status!=="error"){ deferred.resolve($container.contents()); } deferred.reject(); }); return deferred.promise(); }}, iframe: { process: function (url){ var deferred=new $.Deferred(); var $content=$(''); html.attr('height', height); html.attr('width', width); if(video.type==='youtube'){ html.attr('src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id); }else if(video.type==='vimeo'){ html.attr('src', '//player.vimeo.com/video/' + video.id + '?autoplay=1'); }else if(video.type==='vzaar'){ html.attr('src', '//view.vzaar.com/' + video.id + '/player?autoplay=true'); } iframe=$(html).wrap('
').insertAfter(item.find('.owl-video')); this._playing=item.addClass('owl-video-playing'); }; Video.prototype.isInFullScreen=function (){ var element=document.fullscreenElement||document.mozFullScreenElement || document.webkitFullscreenElement; return element&&$(element).parent().hasClass('owl-video-frame'); }; Video.prototype.destroy=function (){ var handler, property; this._core.$element.off('click.owl.video'); for (handler in this._handlers){ this._core.$element.off(handler, this._handlers[handler]); } for (property in Object.getOwnPropertyNames(this)){ typeof this[property]!='function'&&(this[property]=null); }}; $.fn.owlCarousel.Constructor.Plugins.Video=Video; })(window.Zepto||window.jQuery, window, document); ; (function ($, window, document, undefined){ var Animate=function (scope){ this.core=scope; this.core.options=$.extend({}, Animate.Defaults, this.core.options); this.swapping=true; this.previous=undefined; this.next=undefined; this.handlers={ 'change.owl.carousel': $.proxy(function (e){ if(e.namespace&&e.property.name=='position'){ this.previous=this.core.current(); this.next=e.property.value; }}, this), 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function (e){ if(e.namespace){ this.swapping=e.type=='translated'; }}, this), 'translate.owl.carousel': $.proxy(function (e){ if(e.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)){ this.swap(); }}, this) }; this.core.$element.on(this.handlers); }; Animate.Defaults={ animateOut: false, animateIn: false }; Animate.prototype.swap=function (){ if(this.core.settings.items!==1){ return; } if(!$.support.animation||!$.support.transition){ return; } this.core.speed(0); var left, clear=$.proxy(this.clear, this), previous=this.core.$stage.children().eq(this.previous), next=this.core.$stage.children().eq(this.next), incoming=this.core.settings.animateIn, outgoing=this.core.settings.animateOut; if(this.core.current()===this.previous){ return; } if(outgoing){ left=this.core.coordinates(this.previous) - this.core.coordinates(this.next); previous.one($.support.animation.end, clear) .css({ 'left': left + 'px' }) .addClass('animated owl-animated-out') .addClass(outgoing); } if(incoming){ next.one($.support.animation.end, clear) .addClass('animated owl-animated-in') .addClass(incoming); }}; Animate.prototype.clear=function (e){ $(e.target).css({ 'left': '' }) .removeClass('animated owl-animated-out owl-animated-in') .removeClass(this.core.settings.animateIn) .removeClass(this.core.settings.animateOut); this.core.onTransitionEnd(); }; Animate.prototype.destroy=function (){ var handler, property; for (handler in this.handlers){ this.core.$element.off(handler, this.handlers[handler]); } for (property in Object.getOwnPropertyNames(this)){ typeof this[property]!='function'&&(this[property]=null); }}; $.fn.owlCarousel.Constructor.Plugins.Animate=Animate; })(window.Zepto||window.jQuery, window, document); ; (function ($, window, document, undefined){ var Autoplay=function (carousel){ this._core=carousel; this._call=null; this._time=0; this._timeout=0; this._paused=true; this._handlers={ 'changed.owl.carousel': $.proxy(function (e){ if(e.namespace&&e.property.name==='settings'){ if(this._core.settings.autoplay){ this.play(); }else{ this.stop(); }}else if(e.namespace&&e.property.name==='position'&&this._paused){ this._time=0; }}, this), 'initialized.owl.carousel': $.proxy(function (e){ if(e.namespace&&this._core.settings.autoplay){ this.play(); }}, this), 'play.owl.autoplay': $.proxy(function (e, t, s){ if(e.namespace){ this.play(t, s); }}, this), 'stop.owl.autoplay': $.proxy(function (e){ if(e.namespace){ this.stop(); }}, this), 'mouseover.owl.autoplay': $.proxy(function (){ if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){ this.pause(); }}, this), 'mouseleave.owl.autoplay': $.proxy(function (){ if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){ this.play(); }}, this), 'touchstart.owl.core': $.proxy(function (){ if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){ this.pause(); }}, this), 'touchend.owl.core': $.proxy(function (){ if(this._core.settings.autoplayHoverPause){ this.play(); }}, this) }; this._core.$element.on(this._handlers); this._core.options=$.extend({}, Autoplay.Defaults, this._core.options); }; Autoplay.Defaults={ autoplay: false, autoplayTimeout: 5000, autoplayHoverPause: false, autoplaySpeed: false }; Autoplay.prototype._next=function (speed){ this._call=window.setTimeout($.proxy(this._next, this, speed), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read() ); if(this._core.is('interacting')||document.hidden){ return; } this._core.next(speed||this._core.settings.autoplaySpeed); } Autoplay.prototype.read=function (){ return new Date().getTime() - this._time; }; Autoplay.prototype.play=function (timeout, speed){ var elapsed; if(!this._core.is('rotating')){ this._core.enter('rotating'); } timeout=timeout||this._core.settings.autoplayTimeout; elapsed=Math.min(this._time % (this._timeout||timeout), timeout); if(this._paused){ this._time=this.read(); this._paused=false; }else{ window.clearTimeout(this._call); } this._time +=this.read() % timeout - elapsed; this._timeout=timeout; this._call=window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed); }; Autoplay.prototype.stop=function (){ if(this._core.is('rotating')){ this._time=0; this._paused=true; window.clearTimeout(this._call); this._core.leave('rotating'); }}; Autoplay.prototype.pause=function (){ if(this._core.is('rotating')&&!this._paused){ this._time=this.read(); this._paused=true; window.clearTimeout(this._call); }}; Autoplay.prototype.destroy=function (){ var handler, property; this.stop(); for (handler in this._handlers){ this._core.$element.off(handler, this._handlers[handler]); } for (property in Object.getOwnPropertyNames(this)){ typeof this[property]!='function'&&(this[property]=null); }}; $.fn.owlCarousel.Constructor.Plugins.autoplay=Autoplay; })(window.Zepto||window.jQuery, window, document); ; (function ($, window, document, undefined){ 'use strict'; var Navigation=function (carousel){ this._core=carousel; this._initialized=false; this._pages=[]; this._controls={}; this._templates=[]; this.$element=this._core.$element; this._overrides={ next: this._core.next, prev: this._core.prev, to: this._core.to }; this._handlers={ 'prepared.owl.carousel': $.proxy(function (e){ if(e.namespace&&this._core.settings.dotsData){ this._templates.push('
' + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
'); }}, this), 'added.owl.carousel': $.proxy(function (e){ if(e.namespace&&this._core.settings.dotsData){ this._templates.splice(e.position, 0, this._templates.pop()); }}, this), 'remove.owl.carousel': $.proxy(function (e){ if(e.namespace&&this._core.settings.dotsData){ this._templates.splice(e.position, 1); }}, this), 'changed.owl.carousel': $.proxy(function (e){ if(e.namespace&&e.property.name=='position'){ this.draw(); }}, this), 'initialized.owl.carousel': $.proxy(function (e){ if(e.namespace&&!this._initialized){ this._core.trigger('initialize', null, 'navigation'); this.initialize(); this.update(); this.draw(); this._initialized=true; this._core.trigger('initialized', null, 'navigation'); }}, this), 'refreshed.owl.carousel': $.proxy(function (e){ if(e.namespace&&this._initialized){ this._core.trigger('refresh', null, 'navigation'); this.update(); this.draw(); this._core.trigger('refreshed', null, 'navigation'); }}, this) }; this._core.options=$.extend({}, Navigation.Defaults, this._core.options); this.$element.on(this._handlers); }; Navigation.Defaults={ nav: false, navText: [ '', '' ], navSpeed: false, navElement: 'button type="button" role="presentation"', navContainer: false, navContainerClass: 'owl-nav', navClass: [ 'owl-prev', 'owl-next' ], slideBy: 1, dotClass: 'owl-dot', dotsClass: 'owl-dots', dots: true, dotsEach: false, dotsData: false, dotsSpeed: false, dotsContainer: false }; Navigation.prototype.initialize=function (){ var override, settings=this._core.settings; this._controls.$relative=(settings.navContainer ? $(settings.navContainer) : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); this._controls.$previous=$('<' + settings.navElement + '>') .addClass(settings.navClass[0]) .html(settings.navText[0]) .prependTo(this._controls.$relative) .on('click', $.proxy(function (e){ this.prev(settings.navSpeed); }, this)); this._controls.$next=$('<' + settings.navElement + '>') .addClass(settings.navClass[1]) .html(settings.navText[1]) .appendTo(this._controls.$relative) .on('click', $.proxy(function (e){ this.next(settings.navSpeed); }, this)); if(!settings.dotsData){ this._templates=[$('